import Vue from 'vue'
import App from './App.vue'
// rem自适应js文件
import flexble from './assets/static/flexble'
import router from "./router"
import store from './store'
import axios from 'axios'
// 一键导入所有vant 组件 样式
import Vant from 'vant';
import 'vant/lib/index.css';

Vue.config.productionTip = false
Vue.prototype.$bus = new Vue();
Vue.prototype.$http = axios.create({
  headers: {

    token: localStorage.getItem('token')
  }
});
Vue.prototype.$http.interceptors.request.use(function (config) {
  // 发送请求之前做写什么
  store.commit({
    type: "changeShow",
    isShowLoading: true
  })
  console.log(store.state.isShowLoading);
  let token = localStorage.getItem("token");
  console.log(token);
  // 如果有
  if (token) {
    // 放在请求头（token跟后端沟通，他需要什么该成什么就可以了）
    // authorization后端未给权限
    config.headers.authorization = token;   //操作失败
    // config.headers.common['Authorization'] = token
  }

  return config;
}, function (error) {
  // 请求错误的时候做些什么
  router.push('/login')
  return Promise.reject(error)
})

// 添加响应拦截器
Vue.prototype.$http.interceptors.response.use(function (response) {
  // 对响应数据做点什么
  store.commit({
    type: "changeShow",
    isShowLoading: false
  })
  console.log(store.state.isShowLoading);
  return response;
}, function (error) {
  // 对响应错误做点什么
  return Promise.reject(error);
});
Vue.use(Vant);

new Vue({
  render: h => h(App),
  router,
  store
}).$mount('#app')
